Cdn实践

阿里云 cdn: https://help.aliyun.com/document_detail/27099.html

2020.2.23 星期 二 11:01

CDN新手指引

产品简介

工作原理

工作原理

应用场景

CDN的业务使用场景分为静态内容加速、动态内容加速和安全加速。阿里云CDN只用于加速静态内容,动态内容加速需使用阿里云全站加速,安全加速需使用阿里云安全加速。了解动态内容和静态内容,请参见什么是静态内容和动态内容?。

业务场景 场景概述
图片小文件 网站或应用App的主要业务为图片和小文件下载,包括各类型图片、HTML、CSS、JS小文件等。
大文件下载 网站或应用App的主要业务为大文件下载,平均单个文件大小在20 MB以上,例如游戏、各类客户端下载和App下载商店等。
视音频点播 网站或应用App的主要业务为视频点播或短视频类。支持MP4、FLV等主流视频格式。
全站加速 全站加速是阿里云一款独立产品,主要用于动态内容加速,也可以实现动静分离加速。
安全加速 安全加速适用于游戏、金融、政企安防、电商、医疗领域等易受攻击又必须兼顾加速的业务场景。

产品定价

快速入门

#

域名管理

回源配置

当您通过客户端请求访问资源时,如果CDN节点上未缓存该资源,则会到源站获取,同时缓存到CDN节点。您可以根据所需配置回源的相关功能,提升资源访问效率。

配置回源HOST

配置回源协议

改写回源URI

改写回源参数

缓存配置

访问控制 >

概述

您可以通过设置Referer、IP、UsageAgent黑名单和白名单,以及URL鉴权,来实现对访客身份的识别和过滤,从而限制访问CDN资源的用户,提升CDN的安全性。

功能 说明
配置Refer防盗链 您可以通过配置访问的Referer黑名单和白名单来实现对访客身份的识别和过滤,限制访问CDN资源的用户。
配置URL鉴权 您可以通过配置URL鉴权功能保护用户站点的资源不被非法站点下载盗用。URL鉴权比Referer防盗链安全性更高。
配置IP黑白名单 您可以通过配置IP黑名单和白名单来实现对访客身份的识别和过滤,限制访问CDN资源的用户。
配置UA黑白名单 您可以通过配置UsageAgent黑名单和白名单来实现对访客身份的识别和过滤,限制访问CDN资源的用户。

性能优化

功能 说明
页面优化 当您开启页面优化功能时,CDN自动清除HTML页面冗余的注释和重复的空白符,缩小文件体积,提升页面可阅读性。
智能压缩 当您开启智能压缩功能时,CDN自动对静态文件进行Gzip压缩。通过智能Gzip压缩方式,可以有效减小传输文件大小,提升加速业务的效率。
Brotli压缩 当您需要对静态文本文件进行压缩时,可以开启此功能,有效减小传输内容大小,加速分发效果。
过滤参数 当您的URL请求中携带问号(?)和参数时,CDN节点在收到URL请求后,判断是否需要将携带参数的URL返回源站。

Brotli压缩

当您需要对静态文本文件进行压缩时,可以开启此功能,有效减小传输内容大小,加速分发效果。本文为您详细介绍开启Brotli压缩功能的方法。

最佳实践

CDN加速OSS源站资源(方法一)

CDN加速OSS源站资源(方法二)

CDN加速ECS源站资源

优化CDN缓存命中率

查看CDN缓存命中率

优化CDN缓存命中率

CDN缓存命中率的影响因素和优化策略如下表所示。

优化策略 影响因素
预热URL 1)当业务高峰期时,源站压力大,导致CDN缓存命中率低。
2)当CDN加速域名流量较低时,可能提前从CDN节点的缓存中清除,导致CDN缓存命中率低。
配置资源缓存规则 当静态资源未返回响应头Etag或Last-modified时,缓存失败,导致CDN缓存命中率低。
过滤URL中可变参数 当URL请求中带有queryString或其他可变参数时,资源重新回源会导致CDN缓存命中率降低。

例如:响应头x-swift为静态文件,在CDN上的缓存时间为0秒,说明CDN不缓存该文件,原因是响应头中没有带Etag和Last-modified。

您可以通过如下方法,验证缓存是否命中。
在浏览器Chrome上,按F12。
选择Network。
查看指定URL的响应头信息中的X-Cache字段。
如果显示HIT,则说明命中CDN节点上的缓存资源。
如果显示MISS,则说明未命中CDN节点上的缓存资源,直接回源站获取。

CDN缓存策略解读和配置策略

CDN 最佳实践】CDN缓存策略解读和配置策略

CDN 的缓存适用范围

CDN 对于常见的 HTTP 请求均是支持的,具体对不同请求方式的支持情况请参考表一。
但是有一点需要注意的是虽然对这些类型的 HTTP 请求均是支持的,但是并不是对所有请求方式都会进行缓存的。
CDN 仅会对于 GET 请求进行缓存,而对于其他的请求均不进行缓存,仅是起到中间代理、转发的功能。因此我们建议添加 CDN 的站点源站最好能够实现动静分离。将动态请求和静态请求的内容独立成两个站点,而 CDN 仅仅加速静态站点中的资源。

CDN缓存配置

缓存配置包括目录和后缀名两种形式,并且可以针对不同的缓存配置设置不同的权重以决定其优先级。

CDN 缓存规则

CDN 缓存规则示意图

CDN 缓存情况查看

可以根据 X-Cache 查看当前该资源是否有在 CDN的 L1 节点缓存,
而查看 L2 节点的缓存情况则需要根据 Via 头中的第一部分查看,如果是 M 即是 MISS,没有命中的状态;而出现 H 即是命中缓存。
X-Swift-SaveTime 表示该资源缓存到 CDN 节点上的 GMT 时间(相比于北京时间晚8小时);
而 X-Swift-CacheTime 表示该资源在 CDN 节点上缓存多长时间会过期。

CDN如何通过HTTP头配置跨域资源共享(CORS)

CDN如何通过HTTP头配置跨域资源共享(CORS)

更多信息

目前仅支持配置一条白名单域名。
若使用OSS作为源站,OSS与CDN控制台同时配置CORS,CDN的配置将覆盖OSS。
若源站为本地服务器或ECS实例,建议先进行动静分离,静态文件使用CDN加速,CDN控制台配置的CORS功能,仅对静态文件生效。

knowledge is no pay,reward is kindness
0%